Android Lint
============

Android Lint is a static analysis tool (which despite the name is not
limited to Android, and within Google for example is used to analyze
Java and Kotlin server side code as well as Android and even desktop
software like IDEs.)

Lint's focus is on finding bugs (whether they are related to
correctness, performance, security, internationalization, usability and
so on); it's not a source code style checker.

Available documentation:

* [Lint Features](features.md.html)
* [Recent Changes](changes.md.html)
* Documents for users of lint, in the `usage` folder:
  - [Complete Book](user-guide.md.html), containing all of the below
    documents as chapters, suitable for offline reading
  - [Issue documentation](https://googlesamples.github.io/android-custom-lint-rules/checks/index.md.html)
    which lists all the available checks and provides documentation
    for each one.
  - [Performance Tuning Tips](usage/performance-tuning.md.html)
  - [How to suppress incidents](usage/suppressing.md.html)
  - [How to use baselines](usage/baselines.md.html)
  - [How to use `lint.xml` files](usage/lintxml.md.html)
  - [Gradle plugin DSL](usage/agp-dsl.md.html)
  - [Using a newer version of lint than the Gradle bundled one](usage/newer-lint.md.html)
  - [Lint command line](usage/flags.md.html)
  - [Environment variables and properties](usage/variables.md.html)
* Documents for authors of additional lint checks, in the
  `api-guide` folder:
  - [Complete Book](api-guide.md.html), containing all of the below
    documents as chapters, suitable for offline reading
  - [Basics](api-guide/basics.md.html)
  - [A Sample Lint Check](api-guide/example.md.html)
  - [Analyzing data flow](api-guide/dataflow-analyzer.md.html)
  - [Publishing a Lint check](api-guide/publishing.md.html)
  - [AST Analysis](api-guide/ast-analysis.md.html)
  - [Unit Testing](api-guide/unit-testing.md.html)
  - [Test Modes](api-guide/test-modes.md.html)
  - [Annotations](api-guide/annotations.md.html)
  - [Adding Quick Fixes](api-guide/quickfixes.md.html)
  - [Terminology](api-guide/terminology.md.html)
  - [Partial analysis](api-guide/partial-analysis.md.html)
  - [Crafting error messages](api-guide/messages.md.html)
  - [Configuring detectors with options](api-guide/options.md.html)
  - [Frequently Asked Questions](api-guide/faq.md.html)
* Documents for lint internals, intended for developers of lint
  itself, in the `internal` folder:
  - [Guidelines](internal/guidelines.md.html)
  - [Generating Issue Documentation](internal/document-checks.md.html)
  - [Testing dev builds](internal/verify.md.html)

---------------------------------------------------------------------

Documentation History:
* June 2022: Added documentation for [crafting error
  messages](messages.md.html)
* May 2022: Noticed that the document rendering
  was broken, such that many chapters were missing from
  the api-guide: “Adding Quickfixes”, “Partial Analysis”,
  “Data Flow Analyzer”, “Annotations”, and “Options”.
  These are now included.
* November 2021: Added documentation for [option
  handling](api-guide/options.md.html)
* September 2021: Added documentation for [annotation
  handling](api-guide/annotations.md.html)
* July 2021: Added documentation for
  [test modes](api-guide/test-modes.md.html)
* June 2021: Added documentation for the
  [dataflow analyzer](api-guide/dataflow-analyzer.md.html),
  [Lint Gradle DSL](usage/agp-dsl.md.html) and
  [command line flags](usage/flags.md.html).
* May 2021: Added documentation for individual lint issues
* March 2021: Initial version

<!-- Markdeep: --><style class="fallback">body{visibility:hidden;white-space:pre;font-family:monospace}</style><script src="markdeep.min.js" charset="utf-8"></script><script src="https://morgan3d.github.io/markdeep/latest/markdeep.min.js" charset="utf-8"></script><script>window.alreadyProcessedMarkdeep||(document.body.style.visibility="visible")</script>
